
package com.study.manage.utils;

import java.util.ArrayList;
import java.util.List;

/**
 * 数组型集合的工具类
 * 
 * @version 1.0 2017/9/5
 */
public class CmnArrayListUtils {

    /**
     * 对象为null或者对象为空返回true,否则返回false
     * 
     * @param list 检查对象
     * @return true | false
     */
    public static boolean isEmpty(List<?> list) {

        if (list == null || list.isEmpty()){
            return true;
        }
        return false;
    }

    /**
     * 列表转字符串并去除中括号
     * 
     * @param list 列表
     * @return 字符串
     */
    public static String toStringWithOutBracket(List<?> list) {

        if (list == null || list.isEmpty()){
            return CmnStringUtils.EMPTY;
        }
        return CmnStringUtils.substring(list.toString(), 1, list.toString().length() - 1);
    }

    /**
     * 分割数组
     * 
     * @param list 分割对象
     * @param splitLens 分割长度
     * @param <T> 泛型
     * @return 分割后的数组集合
     */
    public static <T> List<List<T>> splitList(List<T> list, final int splitLens) {
    	
        if(isEmpty(list)){
            return new ArrayList<List<T>>();
        }
        List<List<T>> parts = new ArrayList<List<T>>();
        final int listSize = list.size();
        for (int i = 0; i < listSize; i += splitLens){
            parts.add(new ArrayList<T>(list.subList(i, Math.min(listSize, i + splitLens))));
        }
        return parts;
    }
}
